/*
 * CUDAListGraphTester.cuh
 *
 *  Created on: Oct 17, 2013
 *      Author: jaime
 */

#ifndef CUDALISTGRAPHTESTER_CUH_
#define CUDALISTGRAPHTESTER_CUH_

#include "../TestConfigs.cuh"

#include "../../ConflictAnalysis/CUDAListGraph.cuh"
#include "../../Utils/CUDAClauseVec.cuh"
#include "../../SATSolver/DataToDevice.cuh"
#include "../Tester.cuh"

class CUDAListGraphTester : public Tester{
private:
	CUDAListGraph graph;
	int number_of_variables;
	int number_of_clauses;

public:
	__device__ CUDAListGraphTester(DataToDevice & data);
	__device__ bool test_initial_state();
	__device__ bool test_set_and_is_set();
	__device__ bool test_backtrack_to();
	__device__ bool test_link_and_neighbors_methods();
	__device__ bool test_flag_unflag();
	__device__ bool test_link_linked();
	__device__ bool stress_test();
	__device__ void test_all();

};

#endif /* CUDALISTGRAPHTESTER_CUH_ */
